/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejercicio3;

import java.io.*;

/**
 * Programa que permite realizar la venta de tickets hasta que el autobús
 * (dispone de 60 plazas) este completo o el operador de 0 como número de 
 * billetes a vender.
 * @author Yasmina Muro García
 */
public class Ejercicio3 {

    /**
     * Metodo Principal
     * @param args Es el parametro que siempre lleva el main
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static void main(String[] args) throws IOException {
        int edad, billetes = 1, nbilletesN = 0, nbilletesJo = 0, nbilletesA = 0,
                nbilletesJ = 0, plazas = 60, contBilletes = 0;
        float jovenes = 0, adultos = 0, jubilados = 0, porcentaje = 0;
        billetes=pedirBilletes(plazas);
        while (billetes != 0 && plazas>=0) {
            try{
            edad = pedirEdad("INTRODUCE LA EDAD");
            plazas = plazas - billetes;
            contBilletes = contBilletes + billetes;
            if (edad >= 0 && edad < 6) { // if 3
                nbilletesN = nbilletesN + billetes;
            } // if 3
            else {
                if (edad >= 6 && edad < 18) { // if 4
                    nbilletesJo = nbilletesJo + billetes;
                    jovenes = nbilletesJo * 0.5f;
                } // if 4
                else {
                    if (edad >= 18 && edad < 65) { // if 5
                        nbilletesA = nbilletesA + billetes;
                        adultos = nbilletesA * 1f;
                    } // if 5
                    else { // else
                        nbilletesJ = nbilletesJ + billetes;
                        jubilados = nbilletesJ * 0.25f;
                    }

                }
            }
            if(plazas!=0)
            {
                billetes=pedirBilletes(plazas);
            }
        }
            catch(NumberFormatException er)
            {
                System.out.println("Has introducido letras por favor introduce "
                        + "nº billetes");
            }
                }
            
        System.out.println("\n EDADES \t Nº BILLETES \t RECAUDACION");
        System.out.println("0-6 años \t \t" + nbilletesN + "\t Gratis");
        System.out.println("6-18 años \t \t" + nbilletesJo + "\t" + jovenes + "€");
        System.out.println("18-65 años \t \t" + nbilletesA + "\t" + adultos + "€");
        System.out.println("65-   años \t \t" + nbilletesJ + "\t" + jubilados + "€");
        porcentaje = ((float) contBilletes / 60) * 100;
        System.out.println("El porcentaje de ocupación del bus es: " + porcentaje + "%");

    }

    /**
     * Metodo que pide la edad al usuario
     * @param mensaje Mensaje a visualizar, es un dato de tipo string
     * @return Numero devuelve un dato de tipo numerico entero
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static int pedirEdad(String mensaje) throws IOException {
        int numero;
        InputStreamReader flujo = new InputStreamReader(System.in);
        BufferedReader teclado = new BufferedReader(flujo);
        System.out.println(mensaje);
        numero = Integer.parseInt(teclado.readLine());
        return numero;
    }

    /**
     * Metodo que pide un numero de billetes al usuario
     * @param mensaje Mensaje a visualizar, es un dato de tipo string
     * @return Numero devuelve un dato de tipo numerico entero
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static int pedirBilletes(int plazas) throws IOException {
        int billetes = 0;
        boolean mal = true;
        InputStreamReader flujo = new InputStreamReader(System.in);
        BufferedReader teclado = new BufferedReader(flujo);
        while (mal) {
            try {
                System.out.println("Introduce nº billetes");
                billetes = Integer.parseInt(teclado.readLine());
                if (billetes < 0 || billetes > plazas) {
                    System.out.println("ERROR, No hay billetes");

                } else {
                    mal = false;
                }
            }// try
            catch (NumberFormatException er) {
                System.out.println("ERROR, Has introducido letras por favor introduce "
                        + "nº billetes");
            }
        }
        return billetes;
    }
}
